package com.zxl.designpattern.behavioral.interpreter;

/**
 * 减法表达式类（非终结符表达式）
 * 表示两个表达式相减，实现了Expression接口
 */
public class SubtractExpression implements IExpression {
    private IExpression leftExpression;   // 左表达式
    private IExpression rightExpression;  // 右表达式
    
    /**
     * 构造函数，初始化左右表达式
     * @param left 左表达式
     * @param right 右表达式
     */
    public SubtractExpression(IExpression left, IExpression right) {
        this.leftExpression = left;
        this.rightExpression = right;
    }
    
    @Override
    public int interpret(Context context) {
        return leftExpression.interpret(context) - rightExpression.interpret(context);
    }
}    